草庐IT

c++ - SIMD C++ 库

全部标签

c++ - C 语言中是否有像 STL( vector 、 map ...)这样的库?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicates:ContainerClass/LibraryforCIsthereagoodcollectionlibraryforC-language?在C++中,您有一个非常有用的标准模板库(STL),它具有vector、映射、集合等结构......如果我使用纯C,是否有任何库提供类似的结构/函数?谢谢!

c++ - C/C++ 跨平台库允许利用 GPU 进行浮点计算

是否有人知道任何跨平台c/c++库将利用GPU进行浮点计算,而不是专门面向图形的计算。哪些是常用的,哪些是推荐的,哪些是你体验过的。具体来说,它应该是具有GPL许可的开源软件。附录:-您所知道的任何非GPU制造商特定的库。附录:-OpenCL在一些答案中被提到具有跨GPU兼容性。有没有人有使用它的经验并且可以保证它的成熟度?我猜如果是Kronos,那会很不错。 最佳答案 我非常怀疑您是否有合理的机会找到这样的开源软件,因为“使用GPU”通常意味着“高度特定于硬件、绝密的NDA驱动程序”。但是,OpenCL是您可以获得的跨平台产品(与

c++ - 使用 C++ 或 C 处理图像

首先,我是一个初学者。好吗?我已阅读相关答案和问题,但请帮我解决这个问题:如何在C++中打开JPEG图像文件、将其转换为灰度图像、获取其直方图、将其调整为较小的图像、裁剪其特定区域或显示其特定区域?对于这些任务,C还是C++通常更快?哪些库最简单、最快?运行时间很重要。谢谢。 最佳答案 这是一个使用magick的示例图书馆。读取图像、裁剪图像并将其写入新文件的程序(异常处理是可选的,但强烈推荐):#include#includeusingnamespacestd;usingnamespaceMagick;intmain(intarg

C 代码中的 C++ 异常处理

当我们用C编写程序时,我们可能会调用一些用C++编写但具有C接口(interface)的库。那么有可能会出现我们调用这些库的时候,会出现C++异常的情况。所以我的问题是我们如何处理这种情况。从C++开发人员的角度来看,我对这个问题更感兴趣。假设我正在开发一个将由C程序调用的C++库,我是否应该停止使用异常并返回错误代码?另一种情况是,如果我已经有一个完全开发的使用异常的C++库,我如何才能以只使用错误返回方法的快速方式转移这个库? 最佳答案 您必须在C++端捕获所有异常并将它们转换为C中适当的错误返回,其中可能包括适当的特定错误代码

c++ - 如何处理: redeclaration of C++ built-in type ‘char16_t’

在C++11项目中,我必须使用外部C库。该库主头文件定义typedefuint16_tchar16_t;因此,包含该库的C++程序编译失败,并显示消息:redeclarationofC++built-intype‘char16_t’我唯一的想法是重新打包整个库,但是因为char16_t在这个库中很普遍,所以会非常耗时(如果可能的话)。有没有一些明智的方法来处理这个问题?编辑:我还有另一个想法,即删除有问题的行并将每次出现的char16_t替换为uint16_t,但我将不得不修改第三方库header,我并不特别喜欢这个想法(可能会有更多类似的错误)。所以我也想知道在包含头文件时是否有一些

c++ - 在 C++ 中使用 C 头文件

我在谷歌上搜索了这个,发现你使用extern"C"{#include"header.h"}将C库包含在C++库中……但是,当我这样做时。C++程序似乎获取了我所有的#defines和结构定义,但没有任何函数声明给我留下对“函数”的undefinedreference。这是我使用的最少量的src。json.h//json.htypedefstructjson_objectjson_object;structjson_object{charkey[15][50];intsize;charvalue[15][50];};voidjson_parseText(char*text,structj

c++ - 在 VS 2015 中编译和链接第三方库

这个问题在这里已经有了答案:HowtoaddadditionallibrariestoVisualStudioproject?(4个答案)关闭3年前。我正在使用VisualStudio2015开发一个C++项目,我正在尝试链接一个外部库(在本例中为libtins)。该库目前位于我的桌面上。我试过在链接器设置下编辑项目设置,但它没有给我任何包含任何自定义库的选项。我如何在VS2015中执行此操作?

c++ - Windows 和 Linux 中 C++ 中 double 的精度位数不同。为什么? Linux显示超过20个非零精度数字

刚刚做了这个:doubleval1=numeric_limits::max();cout.precision(70);cout在Windows中,我在17位数字(小数点后16位数字)后开始得到0。然而在Linux中,当我不断增加cout.precision(NUMBER)时,越来越多的数字不断显示并且它们不是零。此外,运行以下代码在Windows和Linux上都会显示“15”。Windows系统是32位的,Linux系统是64位的,如果有区别的话。typedefstd::numeric_limitsdl;cout谁能帮忙解释一下这是怎么回事?我认为Windows和Linux中的精度位数

c++ - 如何从动态库中调用未知函数?

我需要实现从.so调用函数的能力,而无需在编译时了解该函数。我只会在运行时提供该信息。我该怎么做?我们可以假设我要调用的函数是从库中导出的,库端不需要做任何事情。函数签名在编译时是未知的。操作系统是RaspberryPI上的Linux。 最佳答案 dlopen和dlsym(或它们的Windows等效项)允许您加载文件名在运行时确定的“共享对象”(已编译代码的模块),然后检索其名称也在运行时确定的子例程的函数指针。然而,每个这样的函数的类型签名——要传递的参数的数量和类型——在编译时必须仍然是已知的,这样你就可以转换void*由dls

c++ - 二进制文件和跨平台兼容性

我编写了一个C++库,可以将我的数据(自定义结构的集合等)保存到二进制文件中。我目前在我的Windows(XP)机器上本地使用(即创建和使用)这些文件。为简单起见,让我们将库分为两部分:编写器(创建文件)和读取器或消费者(简单地从文件)。但最近,我还想在我的Linux机器上使用(即读取)我在我的XP机器上创建的数据文件。在此阶段我必须指出两台机器都是PC(因此具有相同的endianess等)。我可以构建一个阅读器(并为Linux[准确地说是Ubuntu9.10]编译),因为我是图书馆的创建者。在我踏上这条道路(构建阅读器等)之前,我的问题是:假设我已经成功地为Linux构建了阅读器,我